﻿using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.VisualBasic;
using System.CodeDom.Compiler;

namespace codeCompiler
{
    /// <summary>
    /// Eine von <see cref="compilerBase"/> abgeleitete Klasse welche das Kompillieren von VB.Net Assemblies ermöglicht.
    /// </summary>
    public class VBCodeCompiler : compilerBase
    {

        /// <summary>
        /// Initialisiert eine neue Instanz des <see cref="VBCodeCompiler"/>.
        /// </summary>
        public VBCodeCompiler()
            : base() { }

        /// <summary>
        /// Kompilliert aus den angegebenen Daten ein .Net Assembly
        /// </summary>
        public override void Compile()
        {
            VBCodeProvider vbcodeprovider = new VBCodeProvider();
            CompilerParameters cpParameter = buildCompilerParameters();

            CompilerResults cr = vbcodeprovider.CompileAssemblyFromSource(cpParameter, codeFiles.ToArray());
            onCompilerFinished(new compilerFinishedEventArgs(cr));
        }
    }
}
